package br.com.delogic.simuladorbancario.main.model;

/**
 *
 * @author NB1
 */
public abstract class Cliente implements Comparable<Cliente> {
    private Integer codigo;
    private String nome;
    private String sobrenome;
    private String logradouro;
    private String cidade;
    private String telefone;
    private String email;
    private String cep;
    private UnidadeFederativa uf;
    private SituacaoCliente situacao;
    
    public abstract String getCadastro();
    public abstract void setCadastro(String c);
    public abstract String getNomeCompleto();
    
    @Override
    public int compareTo(Cliente cliente) {
        return this.getNomeCompleto().compareToIgnoreCase(cliente.getNomeCompleto());
    }

    /**
     * @return the codigo
     */
    public Integer getCodigo() {
        return codigo;
    }

    /**
     * @param codigo the codigo to set
     */
    public void setCodigo(Integer codigo) {
        this.codigo = codigo;
    }

    /**
     * @return the nome
     */
    public String getNome() {
        return nome;
    }

    /**
     * @param nome the nome to set
     */
    public void setNome(String nome) {
        this.nome = nome;
    }

    /**
     * @return the sobrenome
     */
    public String getSobrenome() {
        return sobrenome;
    }

    /**
     * @param sobrenome the sobrenome to set
     */
    public void setSobrenome(String sobrenome) {
        this.sobrenome = sobrenome;
    }

    /**
     * @return the logradouro
     */
    public String getLogradouro() {
        return logradouro;
    }

    /**
     * @param logradouro the logradouro to set
     */
    public void setLogradouro(String logradouro) {
        this.logradouro = logradouro;
    }

    /**
     * @return the cidade
     */
    public String getCidade() {
        return cidade;
    }

    /**
     * @param cidade the cidade to set
     */
    public void setCidade(String cidade) {
        this.cidade = cidade;
    }

    /**
     * @return the telefone
     */
    public String getTelefone() {
        return telefone;
    }

    /**
     * @param telefone the telefone to set
     */
    public void setTelefone(String telefone) {
        this.telefone = telefone;
    }

    /**
     * @return the email
     */
    public String getEmail() {
        return email;
    }

    /**
     * @param email the email to set
     */
    public void setEmail(String email) {
        this.email = email;
    }

    /**
     * @return the uf
     */
    public UnidadeFederativa getUf() {
        return uf;
    }

    /**
     * @param uf the uf to set
     */
    public void setUf(UnidadeFederativa uf) {
        this.uf = uf;
    }

    /**
     * @return the cep
     */
    public String getCep() {
        return cep;
    }

    /**
     * @param cep the cep to set
     */
    public void setCep(String cep) {
        this.cep = cep;
    }

    /**
     * @return the situacao
     */
    public SituacaoCliente getSituacao() {
        return situacao;
    }

    /**
     * @param situacao the situacao to set
     */
    public void setSituacao(SituacaoCliente situacao) {
        this.situacao = situacao;
    }
}
